/******************************************************************************************
**  Copyright 2023 Hangzhou Zhicun (Witmem) Technology Co., Ltd.  All rights reserved.   **
**                                                                                       **
**  This program is free software: you can redistribute it and/or modify                 **
**  it under the terms of the GNU General Public License as published by                 **
**  the Free Software Foundation, either version 3 of the License, or                    **
**  (at your option) any later version.                                                  **
**                                                                                       **
**  This program is distributed in the hope that it will be useful,                      **
**  but WITHOUT ANY WARRANTY; without even the implied warranty of                       **
**  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                        **
**  GNU General Public License for more details.                                         **
**                                                                                       **
**  You should have received a copy of the GNU General Public License                    **
**  along with this program.  If not, see http://www.gnu.org/licenses/.                  **
*******************************************************************************************/

#include "ChangeTabOrder.h"
#include <QKeyEvent>
#include <QWidget>

ChangeTabOrder::ChangeTabOrder(QWidget* pNextFocusTarget)
{
    m_pFocusTarget = pNextFocusTarget;
}

bool ChangeTabOrder::eventFilter(QObject *obj, QEvent *event)
{
    if (event->type() == QEvent::KeyPress) {
        QKeyEvent *keyEvent = static_cast<QKeyEvent *>(event);
        if (keyEvent->key() == 16777217){
            if (m_pFocusTarget != nullptr){
                m_pFocusTarget->setFocus(Qt::TabFocusReason);
            }
        }
        return true;
    } else{
        return QObject::eventFilter(obj, event);
    }
}
